﻿#include "widget.h"
#include <QButtonGroup>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::WidgetClass())
{
    ui->setupUi(this);
    // 添加一个默认的选项
    ui->radioButton_male->setChecked(true);
    ui->label->setText("您选择的性别为: 男");
    // 禁用 其他 选项
    // checkable 只是能够让按钮不被选中. 仍然是可以响应点击事件的.
    // ui->radioButton_other->setCheckable(false);
    ui->radioButton_other->setEnabled(false);
    // ui->radioButton_other->setDisabled(true);

    // 使用 QButtonGroup 对单选按钮进行分组
    QButtonGroup* group1 = new QButtonGroup(this);
    QButtonGroup* group2 = new QButtonGroup(this);
    QButtonGroup* group3 = new QButtonGroup(this);

    // 把上述单选按钮, 放到不同的组里.
    group1->addButton(ui->radioButton_5);
    group1->addButton(ui->radioButton_6);
    group1->addButton(ui->radioButton_7);

    group2->addButton(ui->radioButton_8);
    group2->addButton(ui->radioButton_9);
    group2->addButton(ui->radioButton_10);

    group3->addButton(ui->radioButton_11);
    group3->addButton(ui->radioButton_12);
    group3->addButton(ui->radioButton_13);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_radioButton_male_clicked()
{
    // 把界面上的 label 的内容进行更新
    ui->label->setText("您选择的性别为：男");
}

void Widget::on_radioButton_female_clicked()
{
    ui->label->setText("您选择的性别为：女");
}

void Widget::on_radioButton_other_clicked()
{
    ui->label->setText("您选择的性别为：其他");
}

void Widget::on_radioButton_clicked(bool checked)
{
    // 此处从 checked 就表示了当前 radioButton 的选中状态.
    qDebug() << "clicked: " << checked;
}

void Widget::on_radioButton_2_pressed()
{
    // 点击就会有信号
    qDebug() << "pressed";
}

void Widget::on_radioButton_3_released()
{
    // 松开才会有信号
    qDebug() << "released";
}

void Widget::on_radioButton_4_toggled(bool checked)
{
    // checked 状态发生改变, 就会触发这个信号.
    qDebug() << "toggled: " << checked;
}